﻿/******************************************************************************
 * Copyright (C) 2015  671643387@qq.com
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 *****************************************************************************/

#include "Shared/Common.h"


namespace Shared {

    char const* localeNames[MAX_LOCALE] =
    {
        "enUS", /* enGB */
        "koKR",
        "frFR",
        "deDE",
        "zhCN",
        "zhTW",
        "esES",
        "esMX",
    };

    bool isAcceptableClientBuild(std::uint32_t build)
    {
        int accepted_versions[] = EXPECTED_NODE_CLIENT_BUILD;
        for (int i = 0; accepted_versions[i]; ++i) {
            if (int(build) == accepted_versions[i]) {
                return true; 
            }
        }
        return false;
    }

    LocaleNameStr const fullLocaleNameList[] =
    {
        { "enUS", LOCALE_enUS },
        { "enGB", LOCALE_enUS },
        { "koKR", LOCALE_koKR },
        { "frFR", LOCALE_frFR },
        { "deDE", LOCALE_deDE },
        { "zhCN", LOCALE_zhCN },
        { "zhTW", LOCALE_zhTW },
        { "esES", LOCALE_esES },
        { "esMX", LOCALE_esMX },
        { NULL, LOCALE_enUS }
    };

    LocaleConstant getLocaleByName(const std::string& name)
    {
        for (LocaleNameStr const* itr = &fullLocaleNameList[0]; itr->name; ++itr)
        {
            if (name == itr->name) {
                return itr->locale;
            }
        }
        return LOCALE_enUS;
    }

}